package com.group.entity.wms;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 货品信息
 */

@TableName("wms_goods")
public class GoodsEntity {

    /**
     * 货品id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;
    /**
     * 货品名称
     */
    private String goodsName;

    /**
     * 货品成本价
     */
    private BigDecimal goodsCostPrice;

    /**
     * 货品销售价格
     */
    private BigDecimal goodsSalesPrice;
    /**
     * 是否按件销售
     */
    private Integer isPiece;

    /**
     * 是否按重量销售
     */
    private Integer isWeight;

    /**
     * 单位
     */
        private String unit;
    /**
     * 创建者
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long createUser;
    /**
     * 成本价起始位置
     */
    @TableField(exist = false)
    private BigDecimal costBegin;
    /**
     * 成本价结束位置
     */
    @TableField(exist = false)
    private BigDecimal costEnd;


    @TableField(exist = false)
    private String createUserName;
    /**
     * 销售价起始位置
     */
    @TableField(exist = false)
    private BigDecimal salesBegin;
    /**
     * 销售价结束位置
     */
    @TableField(exist = false)
    private BigDecimal salesEnd;
    /**
     * 商品状态
     */
        private Integer status;
    /**
     * 当前数量
     */
    private BigDecimal count;

    /**
     * 共计使用的数量
     */
    private BigDecimal useCount;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 最后一次修改时间
     */
    private Date lastUpdateTime;
    /**
     * 创建起始时间
     */
    @TableField(exist = false)
    private Date beginCreateTime;

    /**
     * 创建结束时间
     */
    @TableField(exist = false)
    private Date endCreateTime;
    /**
     * 商品状态
     * 0，未入库，1入库,2正在使用
     */
    private Integer line;
    /**
     * 重量单位
     */
    private String weightUnit;
    /**
     * 最后一次修改人
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long lastUpdateUser;

    @TableField(exist = false)
    private Date lastUpdateTimeBegin;

    @TableField(exist = false)
    private Date lastUpdateTimeEnd;

    @TableField(exist = false)
    private String lastUpdateUserName;
    /**
     * 供应商
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long supplier;

    @TableField(exist = false)
    private String supplierName;

    public String getWeightUnit() {
        return weightUnit;
    }

    public void setWeightUnit(String weightUnit) {
        this.weightUnit = weightUnit;
    }

    /**
     * 商品分类
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long goodsType;

    @TableField(exist = false)
    private String goodsTypeName;

    @JsonSerialize(using = ToStringSerializer.class)
    private Long positionId;
    /**
     * 储位名称
     */
    @TableField(exist = false)
    private String positionName;
    @JsonSerialize(using = ToStringSerializer.class)
    private Long warehouseId;
    /**
     * 仓库名称
     */
    @TableField(exist = false)
    private String warehouseName;

    @JsonSerialize(using = ToStringSerializer.class)
    private Long warehouseAreaId;
    /**
     * 库区名称
     */
    @TableField(exist = false)
    private String warehouseAreaName;
    public Long getWarehouseId() {
        return warehouseId;
    }

    public void setWarehouseId(Long warehouseId) {
        this.warehouseId = warehouseId;
    }

    public Long getWarehouseAreaId() {
        return warehouseAreaId;
    }

    public void setWarehouseAreaId(Long warehouseAreaId) {
        this.warehouseAreaId = warehouseAreaId;
    }

    public Long getPositionId() {
        return positionId;
    }

    public void setPositionId(Long positionId) {
        this.positionId = positionId;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getGoodsName() {
        return goodsName;
    }

    public void setGoodsName(String goodsName) {
        this.goodsName = goodsName;
    }

    public BigDecimal getGoodsCostPrice() {
        return goodsCostPrice;
    }

    public void setGoodsCostPrice(BigDecimal goodsCostPrice) {
        this.goodsCostPrice = goodsCostPrice;
    }

    public BigDecimal getGoodsSalesPrice() {
        return goodsSalesPrice;
    }

    public void setGoodsSalesPrice(BigDecimal goodsSalesPrice) {
        this.goodsSalesPrice = goodsSalesPrice;
    }

    public Integer getIsPiece() {
        return isPiece;
    }

    public void setIsPiece(Integer isPiece) {
        this.isPiece = isPiece;
    }

    public Integer getIsWeight() {
        return isWeight;
    }

    public void setIsWeight(Integer isWeight) {
        this.isWeight = isWeight;
    }

    public String getUnit() {
        return unit;
    }

    public void setUnit(String unit) {
        this.unit = unit;
    }

    public Long getCreateUser() {
        return createUser;
    }

    public void setCreateUser(Long createUser) {
        this.createUser = createUser;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getLastUpdateTime() {
        return lastUpdateTime;
    }

    public void setLastUpdateTime(Date lastUpdateTime) {
        this.lastUpdateTime = lastUpdateTime;
    }

    public Long getLastUpdateUser() {
        return lastUpdateUser;
    }

    public void setLastUpdateUser(Long lastUpdateUser) {
        this.lastUpdateUser = lastUpdateUser;
    }

    public Long getSupplier() {
        return supplier;
    }

    public void setSupplier(Long supplier) {
        this.supplier = supplier;
    }

    public Long getGoodsType() {
        return goodsType;
    }

    public void setGoodsType(Long goodsType) {
        this.goodsType = goodsType;
    }

    public String getCreateUserName() {
        return createUserName;
    }

    public void setCreateUserName(String createUserName) {
        this.createUserName = createUserName;
    }

    public String getLastUpdateUserName() {
        return lastUpdateUserName;
    }

    public void setLastUpdateUserName(String lastUpdateUserName) {
        this.lastUpdateUserName = lastUpdateUserName;
    }

    public String getSupplierName() {
        return supplierName;
    }

    public void setSupplierName(String supplierName) {
        this.supplierName = supplierName;
    }

    public String getGoodsTypeName() {
        return goodsTypeName;
    }

    public void setGoodsTypeName(String goodsTypeName) {
        this.goodsTypeName = goodsTypeName;
    }

    public BigDecimal getCostBegin() {
        return costBegin;
    }

    public void setCostBegin(BigDecimal costBegin) {
        this.costBegin = costBegin;
    }

    public BigDecimal getCostEnd() {
        return costEnd;
    }

    public void setCostEnd(BigDecimal costEnd) {
        this.costEnd = costEnd;
    }

    public BigDecimal getSalesBegin() {
        return salesBegin;
    }

    public void setSalesBegin(BigDecimal salesBegin) {
        this.salesBegin = salesBegin;
    }

    public BigDecimal getSalesEnd() {
        return salesEnd;
    }

    public void setSalesEnd(BigDecimal salesEnd) {
        this.salesEnd = salesEnd;
    }

    public BigDecimal getCount() {
        return count;
    }

    public void setCount(BigDecimal count) {
        this.count = count;
    }

    public BigDecimal getUseCount() {
        return useCount;
    }

    public void setUseCount(BigDecimal useCount) {
        this.useCount = useCount;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Date getBeginCreateTime() {
        return beginCreateTime;
    }

    public void setBeginCreateTime(Date beginCreateTime) {
        this.beginCreateTime = beginCreateTime;
    }

    public Date getEndCreateTime() {
        return endCreateTime;
    }

    public void setEndCreateTime(Date endCreateTime) {
        this.endCreateTime = endCreateTime;
    }

    public Date getLastUpdateTimeBegin() {
        return lastUpdateTimeBegin;
    }

    public void setLastUpdateTimeBegin(Date lastUpdateTimeBegin) {
        this.lastUpdateTimeBegin = lastUpdateTimeBegin;
    }

    public Date getLastUpdateTimeEnd() {
        return lastUpdateTimeEnd;
    }

    public void setLastUpdateTimeEnd(Date lastUpdateTimeEnd) {
        this.lastUpdateTimeEnd = lastUpdateTimeEnd;
    }

    public Integer getLine() {
        return line;
    }

    public void setLine(Integer line) {
        this.line = line;
    }

    public String getPositionName() {
        return positionName;
    }

    public void setPositionName(String positionName) {
        this.positionName = positionName;
    }

    public String getWarehouseName() {
        return warehouseName;
    }

    public void setWarehouseName(String warehouseName) {
        this.warehouseName = warehouseName;
    }

    public String getWarehouseAreaName() {
        return warehouseAreaName;
    }

    public void setWarehouseAreaName(String warehouseAreaName) {
        this.warehouseAreaName = warehouseAreaName;
    }
}
